package geant;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.TextField;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.RowFilter;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;

public class VentanaGestionarProducto extends JFrame {
	
	JButton agregarStock,borrarStock,borrarProducto;
	JLabel buscar;
	JTextField escribir;
	TextField numStockA,numStockB;
	JTable tabla;
	JPanel panelSuperior,panelInferior,panelIzquierdo,panelDerecho;
	TableRowSorter sorter;
	MiModelodeTabla modelo;
	
	VentanaGestionarProducto(){
		
		this.setBounds(300, 200, 700, 400);
		this.setResizable(false);
		this.setVisible(true);
	
		Container contenedor = getContentPane();
		contenedor.setLayout (new BorderLayout());
		
		
		
		construyePanelInferior();
        construyePanelSuperior();
        construyePanelIzquierdo();
        construyePanelDerecho();
        
        contenedor.add(panelSuperior, BorderLayout.NORTH);
        contenedor.add(panelInferior, BorderLayout.SOUTH);
        contenedor.add(panelIzquierdo, BorderLayout.WEST);
        contenedor.add(panelDerecho, BorderLayout.EAST);

		
		
	}
	
	private void newFilter() {
        RowFilter<MiModelodeTabla, Object> rf = null;
        try {
            rf = RowFilter.regexFilter(escribir.getText(), 0);
        } catch (java.util.regex.PatternSyntaxException e) {
            return;
        }
        sorter.setRowFilter(rf);
    }
	
	
	 private void construyePanelSuperior()
	    {
		 	buscar = new JLabel("Buscar: ");
			buscar.setBounds(10, 300, 80, 20);
			
			escribir = new JTextField("Escribir aqui");
			escribir.getDocument().addDocumentListener(
	                new DocumentListener() {
	                    public void changedUpdate(DocumentEvent e) {
	                        newFilter();
	                    }
	                    public void insertUpdate(DocumentEvent e) {
	                        newFilter();
	                    }
	                    public void removeUpdate(DocumentEvent e) {
	                        newFilter();
	                    }
	                });
			
			escribir.setBounds(40, 300, 120, 20);
	        panelSuperior = new JPanel(new FlowLayout(FlowLayout.LEFT));
	        
	        panelSuperior.add(buscar);
	        panelSuperior.add(escribir);
	        
	        
	    }

	    /**
	     * Construye el panel inferior, metiendo una etiqueta, una caja de texto y un boton.
	     * Pone un FlowLayuout y pinta el panel de amarillo.
	     */
	    private void construyePanelInferior()
	    {
	    	JLabel cantidadA = new JLabel("cantidad");
	    	JLabel cantidadB = new JLabel("cantidad");
	    	
	    	borrarStock = new JButton("Borrar stock");
			agregarStock = new JButton("Agregar stock");
	        panelInferior = new JPanel();
	        
	        numStockA = new TextField();
	        numStockB = new TextField();
	        
	        
	        panelInferior.add(cantidadA);
	        panelInferior.add(numStockB);
	        panelInferior.add(borrarStock);
	        panelInferior.add(cantidadB);
	        panelInferior.add(numStockA);
	        panelInferior.add(agregarStock);
	        
	    }

	    /**
	     * Construye el panel izquierdo, poniendo tres botones.
	     * Pone un BoxLayout vertical, para poner los tres botones en columna.
	     * Pinta el panel de rojo.
	     */
	    private void construyePanelIzquierdo()
	    {
	    	modelo = new MiModelodeTabla();
	    	sorter = new TableRowSorter<MiModelodeTabla>(modelo);
	    	tabla = new JTable(modelo);
	        tabla.setRowSorter(sorter);
	        
			tabla.setPreferredScrollableViewportSize(new Dimension(500,50));
			tabla.setFillsViewportHeight(true);
			
			//tabla.isCellEditable(1,1);
			
			tabla.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
			
			
			JScrollPane scroll = new JScrollPane(tabla);
			
	    	panelIzquierdo = new JPanel();
	        panelIzquierdo.setLayout(
	            new BoxLayout(panelIzquierdo, BoxLayout.Y_AXIS));
	        panelIzquierdo.setBackground(Color.red);
	        
	        panelIzquierdo.add(scroll);
	        
	    }

	    /**
	     * Construye el panel derecho poniendo cuatro botones en columna.
	     * Pone un BoxLayout para poner los cuatro botones en columna.
	     * Pinta el panel de verde.
	     */
	    private void construyePanelDerecho()
	    {
			borrarProducto = new JButton("Borrar producto");
	        
			panelDerecho = new JPanel();
	        panelDerecho.setLayout(new BoxLayout(panelDerecho, BoxLayout.Y_AXIS));
	        panelDerecho.add(borrarProducto);
	        
	        
	    }
	    
	    
	    
	    public void cargarTabla(){
	    	
	    }

}
